package com.ruoyi.common.utils.youdao;



import com.ruoyi.common.utils.QwUtil;
import com.ruoyi.common.utils.SentenceFormatter;
import com.ruoyi.common.utils.youdao.utils.AuthV3Util;
import com.ruoyi.common.utils.youdao.utils.HttpUtil;
import org.noear.snack.ONode;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.nio.charset.StandardCharsets;
import java.security.NoSuchAlgorithmException;
import java.util.HashMap;
import java.util.Map;

/**
 * 网易有道智云翻译服务api调用demo
 * api接口: https://openapi.youdao.com/api
 */
public class TranslateUtil {
    private static final Logger logger = LoggerFactory.getLogger(TranslateUtil.class);
    private static final String APP_KEY = "16de5761e67e9541";     // 您的应用ID
    private static final String APP_SECRET = "ZBO2cmS5pOR7hh9VTDDzHwGnvmWfpQT7";  // 您的应用密钥


    public static String translate(String translateStr)throws NoSuchAlgorithmException {
        String translate = "";
        // 添加请求参数
        Map<String, String[]> params = createRequestParams(translateStr);
        // 添加鉴权相关参数
        AuthV3Util.addAuthParams(APP_KEY, APP_SECRET, params);
        // 请求api服务
        byte[] result = HttpUtil.doPost("https://openapi.youdao.com/api", null, params, "application/json");
        // 打印返回结果
        if (result != null) {
            String strJson = new String(result, StandardCharsets.UTF_8);
            logger.info("有道云翻译结果：{}",strJson);
            ONode oNode = ONode.load(strJson);
            ONode node = oNode.select("$.translation[0]");
            translate = node.getString();
            translate= SentenceFormatter.capitalizeFirstLetter(translate);
            System.out.println(translate);
        }

       return translate;
    }

    private static Map<String, String[]> createRequestParams(String translateStr) {
        /*
         * note: 将下列变量替换为需要请求的参数
         * 取值参考文档: https://ai.youdao.com/DOCSIRMA/html/%E8%87%AA%E7%84%B6%E8%AF%AD%E8%A8%80%E7%BF%BB%E8%AF%91/API%E6%96%87%E6%A1%A3/%E6%96%87%E6%9C%AC%E7%BF%BB%E8%AF%91%E6%9C%8D%E5%8A%A1/%E6%96%87%E6%9C%AC%E7%BF%BB%E8%AF%91%E6%9C%8D%E5%8A%A1-API%E6%96%87%E6%A1%A3.html
         */
        String q = translateStr;
        String from = "zh-CHS";
        String to = "en";
        String vocabId = "";

        return new HashMap<String, String[]>() {{
            put("q", new String[]{q});
            put("from", new String[]{from});
            put("to", new String[]{to});
            put("vocabId", new String[]{vocabId});
        }};
    }

    public static void main(String[] args) throws NoSuchAlgorithmException {
        translate("视频中，一个戴着眼镜的男子站在户外，手里拿着一根烟。他穿着一件印有图案的白色T恤和浅色裤子。他先是将烟放在嘴边，然后又将烟拿开，低头看了一下手中的烟。背景中可以看到一辆自行车和一些建筑物。");
    }
}
